package com.car.loan.project.xr.util.vo;

import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @author huangding
 * @description
 * @date 2019/12/24 14:43
 */
@Data
public class LoanContractAuditVo extends LoanDetailVo {

    /**
     * 车辆信息
     */
    @ApiModelProperty("车辆信息")
    private CarInfo carInfo;

    @ApiModelProperty("保险信息")
    private InsuranceInfo insuranceInfo;

    @ApiModelProperty("业务详情")
    private String remark;

    @ApiModelProperty("审批意见")
    private String auditRemark;

    @ApiModelProperty("业务建议")
    private String businessSuggest;

    @ApiModelProperty("加签意见")
    private String secondAuditRemark;

    @ApiModelProperty("档案信息")
    private FileInfo fileInfo;

    @Data
    public static class FileInfo{

        @ApiModelProperty("档案编号")
        private String fileNo;

    }

    @Data
    public static class InsuranceInfo {

        /**
         * 商业险保险公司
         */
        @ApiModelProperty("商业险保险公司")
        private String syInsuranceCompany;

        /**
         * 商业险保单号
         */
        @ApiModelProperty("商业险保单号")
        private String syInsuranceNo;

        /**
         * 商业险开始日期
         */
        @ApiModelProperty("商业险开始日期")
        private String syStartDate;

        /**
         * 商业险结束日期
         */
        @ApiModelProperty("商业险结束日期")
        private String syEndDate;

        /**
         * 交强险保险公司
         */
        @ApiModelProperty("交强险保险公司")
        private String jqInsuranceCompany;

        /**
         * 交强险保单号
         */
        @ApiModelProperty("交强险保单号")
        private String jqInsuranceNo;

        /**
         * 交强险开始日期
         */
        @ApiModelProperty("交强险开始日期")
        private String jqStartDate;

        /**
         * 交强险结束日期
         */
        @ApiModelProperty("交强险结束日期")
        private String jqEndDate;
    }

    /**
     * 车辆信息
     */
    @Data
    public static class CarInfo {

        @ApiModelProperty(value = "车辆品牌(银行)", required = true)
        private String bankCarBrand;

        @ApiModelProperty(value = "车辆型号(银行)", required = true)
        private String bankCarType;

        /**
         * 发动机号
         */
        @ApiModelProperty(value = "发动机号", required = true)
        @NotBlank
        private String engineNo;

        /**
         * 车架号
         */
        @ApiModelProperty(value = "车架号", required = true)
        @NotBlank
        private String frameNo;


        /**
         * 公牌/私牌
         */
        @ApiModelProperty(value = "车牌类型公牌/私牌", required = true)
        @NotBlank
        private String plateType;

        @ApiModelProperty(value = "车身颜色", required = true)
        @NotBlank
        private String color;

        @ApiModelProperty(value = "合同车价", required = true)
        @NotNull
        private Double sellAmount;

        /**
         * 发票日期
         */
        @ApiModelProperty(value = "开票日期yyyy-mm-dd", required = true)
        @NotBlank
        private String invoiceDate;

        /**
         * 开票价
         */
        @ApiModelProperty(value = "开票金额", required = true)
        @NotBlank
        private Double invoicePrice;

        /**
         * 开票单位
         */
        @ApiModelProperty(value = "开票单位", required = true)
        @NotBlank
        private String invoiceUnit;

        @ApiModelProperty(value = "登记车主", required = true)
        @NotBlank
        private String registOwner;

        /**
         * 抵押日期
         */
        @ApiModelProperty(value = "抵押日期 yyyy-mm-dd", required = true)
        @NotBlank
        private String mortgageDate;

        /**
         * 牌证移交日期
         */
        @ApiModelProperty(value = "牌证移交日期 yyyy-mm-dd", required = true)
        @NotBlank
        private String certTransferDate;

        /**
         * 首次登记日期
         */
        @ApiModelProperty("首次登记日期")
        private String firstRegistDate;

        /**
         * 本次登记日期
         */
        @ApiModelProperty("本次登记日期")
        private String registDate;

        /**
         * 上牌省
         */
        @ApiModelProperty("上牌省")
        private String registProvince;

        /**
         * 上牌市
         */
        @ApiModelProperty("上牌市")
        private String registCity;

        /**
         * 车牌号码
         */
        @ApiModelProperty("车牌号码")
        private String plateNo;
    }

}
